:root {
    --shadow-10: 0 1px 4px rgba(12, 12, 13, 0.1);
    --shadow-20: 0 2px 8px rgba(12, 12, 13, 0.1);
    --shadow-30: 0 4px 16px rgba(12, 12, 13, 0.1);

    --__photon__focus_box-shadow: 0 0 0 1px #0a84ff inset, 0 0 0 1px #0a84ff,
        0 0 0 4px rgba(10, 132, 255, 0.3);

    --__photon__link_color: var(--blue-50);
    --__photon__link_color_hover: var(--blue-50);
    --__photon__link_color_active: var(--blue-60);

    --__photon__card_background: #202023;
    --__photon__card_border: 5px solid transparent;
    --__photon__card_border-color_hover: var(--grey-60);
    --__photon__card_border-radius: 4px;
    --__photon__card_box-shadow: var(--shadow-10);

    --__photon__button_background: var(--grey-10-a10);
    --__photon__button_background_hover: rgba(249, 249, 250, 0.15);
    --__photon__button_background_active: rgba(249, 249, 250, 0.2);
    --__photon__button_background_primary: var(--blue-60);
    --__photon__button_background_primary_hover: var(--blue-70);
    --__photon__button_background_primary_active: var(--blue-80);
    --__photon__button_background_ghost: transparent;
    --__photon__button_background_ghost_hover: rgba(249, 249, 250, 0.1);
    --__photon__button_background_ghost_active: rgba(249, 249, 250, 0.15);
    --__photon__button_color: var(--white-100);
    --__photon__button_color_primary: var(--white-100);
    --__photon__button_color_ghost: var(--grey-10-a80);
}

/* ------------------------ */
/* --------- Links -------- */
/* ------------------------ */

a:not(.button) {
    color: var(--__photon__link_color);
    text-decoration: none;
}
a:not(.button):hover {
    color: var(--__photon__link_color_hover);
    text-decoration: underline;
}
a:not(.button):hover:active {
    color: var(--__photon__link_color_active);
}
a:not(.button):focus-visible {
    box-shadow: var(--__photon__focus_box-shadow);
}

/* ------------------------ */
/* --------- Cards -------- */
/* ------------------------ */

.card {
    background-color: var(--__photon__card_background);
    border: var(--__photon__card_border);
    border-radius: var(--__photon__card_border-radius);
    box-shadow: var(--__photon__card_box-shadow);
}

.card:hover,
.card[open] {
    border-color: var(--__photon__card_border-color_hover);
}

/* ------------------------ */
/* -------- Buttons ------- */
/* ------------------------ */

.button {
    align-items: center;
    display: flex;
    border: initial;
    font-family: inherit;
    text-decoration: initial;
    -moz-user-select: none;
    -webkit-user-select: none;
    user-select: none;
}

.button__icon {
    height: 20px;
    margin-right: 8px;
    width: 20px;
}

/* Types */
.button {
    background-color: var(--__photon__button_background);
    color: var(--__photon__button_color);
}
.button--primary {
    background-color: var(--__photon__button_background_primary);
    color: var(--__photon__button_color_primary);
}
.button--ghost {
    background-color: transparent;
    color: var(--__photon__button_color_ghost);
    height: 32px;
    padding: 8px;
    width: 32px;
}

/* Sizes */
.button {
    border-radius: 2px;
    font-size: inherit;
    font-weight: 400;
    height: 32px;
    padding: 0 8px;
}
.button--micro {
    font-size: 11px;
    height: 24px;
}
.button--puffy {
    border-radius: 4px;
    font-size: 15px;
    height: 48px;
    padding: 0 16px;
}

.button:not(.button--micro):not(.button--puffy):not(.button--ghost) {
    min-width: 132px;
}

/* Behaviours */
.button:disabled,
.button[disabled] {
    opacity: 0.4;
}
.button:focus-visible {
    box-shadow: var(--__photon__focus_box-shadow);
}
.button::-moz-focus-inner {
    border: initial;
}

.button:not(:disabled):hover,
.button:not([disabled]):hover {
    background-color: var(--__photon__button_background_hover);
}
.button:not(:disabled):hover:active,
.button:not([disabled]):hover:active {
    background-color: var(--__photon__button_background_active);
}

.button--primary:not(:disabled):hover,
.button--primary:not([disabled]):hover {
    background-color: var(--__photon__button_background_primary_hover);
}
.button--primary:not(:disabled):hover:active,
.button--primary:not([disabled]):hover:active {
    background-color: var(--__photon__button_background_primary_active);
}

.button--ghost:not(:disabled):hover,
.button--ghost:not([disabled]):hover {
    background-color: var(--__photon__button_background_ghost_hover);
}
.button--ghost:not(:disabled):hover:active,
.button--ghost:not([disabled]):hover:active {
    background-color: var(--__photon__button_background_ghost_active);
}

/* ------------------------ */
/* ------ Typography ------ */
/* ------------------------ */

.display {
}
.display--20 {
    font-size: 36px;
    font-weight: 200;
}

.title {
}
.title--40,
.title--30 {
    font-weight: 300;
}

.title--20,
.title--10 {
    font-weight: 500;
}

.title--40 {
    font-size: 28px;
}
.title--30 {
    font-size: 22px;
}
.title--20 {
    font-size: 17px;
}
.title--10 {
    font-size: 13px;
}

.body {
    font-weight: 400;
}
.body > em {
    font-weight: 700;
}

.body--30 {
    font-size: 17px;
}
.body--20 {
    font-size: 15px;
}
.body--10 {
    font-size: 13px;
}

.caption {
    color: GrayText;
    font-weight: 400;
}
.caption > em {
    font-weight: 700;
}

.caption--30 {
    font-size: 15px;
}
.caption--20 {
    font-size: 13px;
}
.caption--10 {
    font-size: 11px;
}
